home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / pascal / tptc17tc.zip / SIEVE.PAS < prev    next >
Pascal/Delphi Source File  |  1988-03-25  |  793b  |  41 lines

  1.  
  2. (*
  3.  * Sieve of Eratosthenes
  4.  *)
  5.  
  6. program Sieve;
  7.  
  8. const
  9.   Size = 8190;
  10. var
  11.   Flags : array[0..Size] of Boolean;
  12.   Prime, K, Count : Integer;
  13.   Inter, I : Integer;
  14.  
  15. begin
  16.   WriteLn('Sieve of Eratosthenes...');
  17.   Write('50 iterations');
  18.   WriteLn;
  19.   for Inter := 1 to 50 do
  20.     begin
  21.       Count := 0;
  22.       for I := 0 to Size do
  23.         Flags[I] := True;
  24.       for I := 0 to Size do
  25.         begin
  26.           if (Flags[I]) then
  27.             begin
  28.               Prime := I+I+3;
  29.               K := I+Prime;
  30.               while (K <= Size) do
  31.                 begin
  32.                   Flags[K] := False;
  33.                   K := K+Prime;
  34.                 end;
  35.               Count := Count+1;
  36.             end;
  37.         end;
  38.     end;
  39.   WriteLn(Count, ' primes');
  40. end.
  41.